Next: The implementation Up: Abstract Previous: Related work

The interface

All interaction with SKETCH is via a three-button mouse(2) with occasional use of one modifier key on the keyboard, and a single orthographic window onto the 3D scene. The mouse is used to generate gestures rather than to select operations from menus. Choosing an operation like object creation, transformation or grouping is seamlessly integrated with the natural expression of intent. SKETCH infers intended tools by recognizing gestures -- sequences of two types of gestural elements -- in its input stream.

Strokes, the first type of gestural element, are pixel-tracks on the film plane(3), made with the first mouse button. There are five classes of strokes shown in Table 1.

Each axis-aligned stroke is aligned with the projection of one the three principal axes of the world. We have also tried aligning strokes with the three principal axes of the surface over which the gesture is drawn. In general, this latter approach seems more effective, although it also presents some difficulties, especially for curved surfaces and for gestures which span over different surfaces. Since we have not yet adequately handled these concerns in our implementation, we will assume for the rest of the paper that all lines are aligned with the world's principal axes except those that are drawn with the ``tearing'' or freehand strokes.

mouse action stroke
click and release dot
click and drag without delaying axis-aligned line: line follows axis whose screen projection is most nearly parallel to dragged-out segment
click and drag, then ``tearing'' motion to ``rip'' line from axis non-axis-aligned line
click, pause, draw freehand curve
click with Shift key pressed, draw freehand curve drawn on surface of objects in scene
   
Table 1: The five stroke classes.

Interactors, the second type of gestural element, are made with the second mouse button. The two classes of interactors, a ``click and drag'' and a ``click,'' have no visual representation.

In addition to gestural elements, SKETCH supports direct-manipulation of camera parameters with the third mouse button, as outlined in Table 2. Third-button manipulations are not discussed further in this paper.

mouse action camera manipulation
click and drag pan: point on film plane beneath mouse remains beneath mouse
click, pause, drag zoom/vertical pan: dragging horizontally zoom in/out towards clicked-on point, dragging vertically pan up/down
click near window boundary, drag rotate: performs continuous XY controller rotation about center of screen [8]
click on object ``focus'': camera moves so that object is in center of view [18]
shift-click change rendering: cycles through available rendering styles (see Section 5)
   
Table 2: Gestures for camera manipulation.

Next: The implementation Up: Abstract Previous: Related work